home *** CD-ROM | disk | FTP | other *** search
- // GETINFO SCRIPTING
- // http://cinema.ptgate.pt/
- // Script feito pelo O Guardiπo versπo 1.0 Alpha 3
- // 20-09-2004
-
-
- (***************************************************
- * For use with Ant Movie Catalog 3.4.0 *
- * www.antp.be/software/moviecatalog *
- * *
- * The source code of the script can be used in *
- * another program only if full credits to *
- * script author and a link to Ant Movie Catalog *
- * website are given in the About box or in *
- * the documentation of the program *
- * *
- * Please dont remove credits *
- * Reportem os erros para bruno_mga@hotmail.com *
- ***************************************************)
- program PTGate;
- const
- BaseAddress = 'http://cinema.ptgate.pt/';
- ManualPictureSelect = True;
- ExternalPictures = False;
- DescriptionToImport = 2;
- var
- MovieName: string;
- MovieURL: string;
- function HTMLRemove(Value: String): String;
- begin
- HTMLDecode(Value);
- HTMLRemoveTags(Value);
- Value := Trim(Value);
- result := Value;
- end;
-
- procedure AnalyzeFilmPage(Address: String);
- var
- Page : TStringList;
- Line, Value : string;
- LineNr, BeginPos, EndPos: Integer;
- AllTitles: TStringList;
- url_imdb:string;
- nome_orig:string;
- nome_trad:string;
- ano:string;
- pais:string;
- genero:string;
- realizac:string;
- Interpretes:string;
- descricao:string;
- capa:string;
- begin
- Page := TStringList.Create;
- Address:='http://cinema.ptgate.pt/filme.php?code='+Address;
- Page.Text := GetPage(Address);
- SetField(fieldURL, Address);
-
- //obter nome do filme
- LineNr := FindLine('<td width=300 valign=top>', Page, 0);
- if LineNr<>-1 then
- begin
- Value := Page.GetString(LineNr+2);
- BeginPos := pos('</b><br><b', value);
- nome_orig:=copy(value,6,BeginPos);
-
- AllTitles := TStringList.Create;
- AllTitles.Add(HTMLRemove(nome_orig));
-
- //por o the no principio do nome
- if pos(', The</b>',nome_orig) <>0 then
- begin
- url_imdb:=HTMLRemove(nome_orig);
- nome_orig:= StringReplace(nome_orig, ', The</b><br>', '');
- nome_orig:=HTMLRemove(nome_orig);
- nome_orig:='The '+Copy(nome_orig,1,length(nome_orig)-5);
- AllTitles.Add(nome_orig);
- end;
-
- nome_orig:=HTMLRemove(nome_orig);
- SetField(fieldOriginalTitle, nome_orig);
- end;
-
- //obter nome traduzido
- BeginPos := pos('<b class=subtitle>', value)+18;
- value:= Copy(value,BeginPos,length(value));
- EndPos := pos('</b>',value);
- nome_trad:=Copy(value,1,EndPos);
- nome_trad:=HTMLRemove(nome_trad);
- SetField(fieldTranslatedTitle, nome_trad);
- value:=Copy(value,EndPos,length(value));
-
- //ano
- BeginPos := pos('<br><br><b>', value)+22;
- value:= Copy(value,BeginPos,length(value));
- EndPos := pos('<br><br><b>',value);
- ano:=Copy(value,1,EndPos);
- ano:=HTMLRemove(ano);
- SetField(fieldYear, ano);
- value:=Copy(value,EndPos,length(value));
-
- //paφs
- BeginPos := pos('<br><b>paφs</b><br>', value)+19;
- value:= Copy(value,BeginPos,length(value));
- EndPos := pos('<br><br><b>',value);
- pais:=Copy(value,1,EndPos);
- pais:=HTMLRemove(pais);
- SetField(fieldCountry, pais);
- value:=Copy(value,EndPos,length(value));
-
- //gΘnero
- BeginPos := pos('<br><b>gΘnero</b><br>', value)+21;
- value:= Copy(value,BeginPos,length(value));
- EndPos := pos('<br><br><b>',value);
- genero:=Copy(value,1,EndPos);
- genero:=HTMLRemove(genero);
- SetField(fieldCategory, genero);
- value:=Copy(value,EndPos,length(value));
-
- //realizaτπo
- BeginPos := pos('<br><br><b>realizaτπo</b><br>', value)+29;
- value:= Copy(value,BeginPos,length(value));
- EndPos := pos('<br><br><b>',value);
- realizac:=Copy(value,1,EndPos);
- realizac:=HTMLRemove(realizac);
- SetField(fieldDirector, realizac);
- value:=Copy(value,EndPos,length(value));
-
- //IntΘrpretes
- BeginPos := pos('<br><br><b>intΘrpretes</b><br>', value)+30;
- value:= Copy(value,BeginPos,length(value));
- EndPos := pos('<br><br><b>',value);
- Interpretes:=Copy(value,1,EndPos);
- Interpretes:= StringReplace(Interpretes, '<br>', ', ');
- Interpretes:=HTMLRemove(Interpretes);
- SetField(fieldActors, Interpretes);
- value:=Copy(value,EndPos,length(value));
-
- //descriτπo
- BeginPos := pos('</a><br><br><b>sinopse</b><br>', value)+30;
- value:= Copy(value,BeginPos,length(value));
- EndPos := pos('<br><br><b>',value);
- EndPos:=Length(value);
- descricao:=Copy(value,1,EndPos);
- descricao:=HTMLRemove(descricao);
- SetField(fieldDescription, descricao);
-
- //capa
- LineNr := FindLine('width=100 height=150>', Page, 0);
- Value := Page.GetString(LineNr);
- BeginPos:=pos('<img src=',value)+10;
- EndPos:=pos(' width=100 height=150>',value)-1;
- value:=Copy(value,BeginPos,EndPos-BeginPos);
- value:='http://cinema.ptgate.pt/'+value;
- GetPicture(Value, False);
- end;
-
-
-
- function FindLine(Pattern: string; List: TStringList; StartAt: Integer): Integer;
- var
- i: Integer;
- begin
- result := -1;
- if StartAt < 0 then
- StartAt := 0;
- for i := StartAt to List.Count-1 do
- if Pos(Pattern, List.GetString(i)) <> 0 then
- begin
- result := i;
- Break;
- end;
- end;
-
- procedure AnalyzePage(Address: string);
- var
- Page: TStringList;
- LineNr, StartPos, EndPos: Integer;
- Line: string;
- x:integer;
- MovieAddress, findMovieName,linedown : string;
- guardar,url, nome_filme:string;
- begin
- PickTreeClear;
- Page := TStringList.Create;
- Page.Text := GetPage(Address);
-
- if (pos('Nπo foram encontrados filmes ou pessoas que satisfaτam a sua pesquisa.', Page.Text)<>-1) then //se existe
- begin
- LineNr := FindLine('filme.php?code=', Page, LineNr);
- Line := Page.GetString(LineNr);
- repeat
- StartPos := pos('filme.php?code=', Line)+15;
- if StartPos=15 then break;
-
- guardar:=Copy(line,StartPos+1,9999);
- line:=Copy(line,StartPos,9999);
- StartPos := pos('>',line)+1;
- url:=(copy(line,1,StartPos-3));
- EndPos := pos('</a>',line)-1;
- line := copy(Line, StartPos, EndPos - StartPos+1);
- nome_filme:=line;
- PickTreeAdd(nome_filme, url);
- line:=guardar;
-
- until (nome_filme='');
-
- if PickTreeExec(Address) then begin
- AnalyzeFilmPage(Address);
- end;
- Page.Free;
- end;
- DisplayResults;
- end;
- begin
- PickListClear;
- MovieName := GetField(fieldOriginalTitle);
- if Input('Importar do cinema.ptgate.pt', 'Escreva o nome do filme:', MovieName) then begin
- //espaτo nπo sπo permitidos
- MovieName := StringReplace(MovieName, ' ', '%20');
- AnalyzePage('http://cinema.ptgate.pt/pesquisa.php?pesquisa='+MovieName);
- end;
- end.
-
-